From: Will Thompson Date: Tue, 25 Sep 2018 17:01:36 +0000 (+0100) Subject: endSessionDialog: squash "reference to undefined property" warning X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~929^2^2~29 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=0892b5dcdb1e3323f953304df9c4c11cb0985d3f;p=gnome-shell.git endSessionDialog: squash "reference to undefined property" warning dialogContent is set to one of the elements of the list DialogContent, but not all of those have a checkBoxText property. When logging out (as opposed to shutting down), this causes a warning: JS WARNING: [resource:///org/gnome/shell/ui/endSessionDialog.js 763]: reference to undefined property "checkBoxText" (The line number corresponds to this line in 3.28.3.) The warning is apparently not triggered if the undefined property is used as part of a boolean expression: gjs> var x = {}; gjs> x.a; typein:2:1 strict warning: reference to undefined property "a" gjs> if (x.b) { log('oh no'); } gjs> x.c || '' "" _setCheckBoxLabel() just checks the truthiness of its 'text' argument, and the empty string is false-y, so passing '' rather than undefined has no functional effect. --- diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 23ed69769..4804333d4 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -727,7 +727,7 @@ var EndSessionDialog = new Lang.Class({ let updatePrepared = this._pkOfflineProxy.UpdatePrepared; let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed; - _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText); + _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText || ''); this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed); this._checkBox.actor.checked = (updatePrepared && updateTriggered);